package com.sdy.auth.biz.service;

import com.sdy.auth.biz.model.SysResource;
import com.sdy.auth.biz.model.SysRole;
import com.sdy.auth.biz.model.dto.UserInfo;
import com.sdy.auth.biz.model.vo.LayTreeItem;
import com.sdy.common.model.BizException;
import com.sdy.common.model.Result;

import java.util.Collection;
import java.util.List;

public interface AuthService {

    /**
     * 角色权限树
     */
    LayTreeItem findAuthTreeByRole(Integer roleId);

    /**
     * 更新角色权限
     */
    void updateAuth(Integer roleId, List<Integer> resIdList) throws BizException;

    /**
     * 菜单
     */
    SysResource findMenu(Integer userId, String appCode);

    /**
     * 查找用户角色
     */
    List<SysRole> findRoleByUser(Integer userId, Boolean valid);

    /**
     * 查找角色资源
     */
    List<Integer> findResourceByRoles(List<Integer> roleIds);

    /**
     * 查询管理员角色
     */
    List<Integer> findAdminRole();

    /**
     * 登录
     */
    Result<UserInfo> login(String username, String password, String token, String ip);

    /**
     * 第三方登录接口
     */
    Result<UserInfo> login(String username, String appid, String key, String timestamp, String ip);

    /**
     * 获取下属用户集合
     */
    Result<Collection> getManagerUserList(Integer userId);

    /**
     * 校验用户权限
     */
    Boolean checkAuthorization(Integer userId, String path, String appCode);

//    /**
//     * 查询用户管理的部门树
//     */
//    List deptManagerTree(Integer userId) throws BizException;
}
